#include int Power = 11; int PIN = 12; #define NUMPIXELS 1 #define BUTTON D1 #define LED1 D0 #define LED2 D6 #define LED3 D7 Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); void setup() { pixels.begin(); pinMode(Power, OUTPUT); pinMode(BUTTON, INPUT_PULLUP); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); digitalWrite(Power, HIGH); } void loop() { if (digitalRead(BUTTON) == LOW) { // The button is pressed, it makes an interesting pattern in NeoPixel performInterestingPattern(); // Wait until the button is released to avoid multiple actions by holding it down while (digitalRead(BUTTON) == LOW) { delay(10); } } else { // If the button is not pressed, it makes a pattern on the LEDs performLEDsPattern(); } } void performInterestingPattern() { // We make the NeoPixel flash in an interesting pattern when pressing the button for (int i = 0; i < 3; i++) { pixels.clear(); pixels.setPixelColor(0, pixels.Color(255, 0, 0)); // Red pixels.show(); delay(200); pixels.clear(); pixels.setPixelColor(0, pixels.Color(0, 255, 0)); // Green pixels.show(); delay(200); pixels.clear(); pixels.setPixelColor(0, pixels.Color(0, 0, 255)); // Blue pixels.show(); delay(200); } // Turn off the NeoPixel after completing the pattern pixels.clear(); pixels.show(); delay(500); // Small delay before allowing another pattern } void performLEDsPattern() { // Make an interesting pattern on the LEDs digitalWrite(LED1, HIGH); delay(200); digitalWrite(LED1, LOW); digitalWrite(LED2, HIGH); delay(200); digitalWrite(LED2, LOW); digitalWrite(LED3, HIGH); delay(200); digitalWrite(LED3, LOW); delay(500); // Small delay before repeating the pattern }